package cn.com.anypay.manager.dto.request;

import cn.com.anypay.manager.common.validation.PhoneNumberFormat;
import cn.com.anypay.manager.common.validation.ValidationGroups;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

/**
 * 验证相关请求DTO
 */
public class VerifyRequestDTO {

    /**
     * 手机号验证码请求
     */
    @Data
    public static class PhoneVerifyRequest {
        @NotBlank(message = "手机号不能为空")
        @PhoneNumberFormat(message = "手机号格式不正确")
        private String phone;

        @NotBlank(message = "验证码不能为空")
        @Pattern(regexp = "^\\d{6}$", message = "验证码必须为6位数字")
        private String code;
    }

    /**
     * 邮箱验证码请求
     */
    @Data
    public static class EmailCodeRequest {
        @NotBlank(message = "邮箱不能为空")
        @Email(message = "邮箱格式不正确")
        private String email;
    }

    /**
     * 邮箱验证请求
     */
    @Data
    public static class EmailVerifyRequest {
        @NotBlank(message = "邮箱不能为空")
        @Email(message = "邮箱格式不正确")
        private String email;

        @NotBlank(message = "验证码不能为空")
        @Pattern(regexp = "^\\d{6}$", message = "验证码必须为6位数字")
        private String code;
    }
}